package com.qdlc.p2p.dal.dao;

import java.util.List;

import com.qdlc.p2p.dal.common.model.jpa.PageDataList;
import com.qdlc.p2p.dal.dto.AdditionalUserCard;
import com.qdlc.p2p.dal.model.AdditionalUserCardModel;

/**
 * 功能描述: 用户卡片
 * @author linya
 * @date 2016-5-6
 */
public interface AdditionalUserCardDao {

	/**
	 * 插入记录
	 * @param record
	 * @return
	 */
	int save(AdditionalUserCard record);


    /**
     * 修改记录
     * @param record
     * @return
     */
	int update(AdditionalUserCard record);

	/**
	 * 修改用户卡片状态
	 *
	 * @param status
	 * @param preStatus
	 * @param id
	 * @return
	 * @author Kaiju Zhao
	 */
	int update(int status, int preStatus, long id);

	/**
	 * 根据IDs获取用户卡片
	 * @param cardIds
	 * @return
	 */
	List<AdditionalUserCard> findUserCards(long userId, long[] cardIds);

	/**
	 * 查询能使用的用户卡片信息列表
	 *
	 * @return
	 * @author Kaiju Zhao
	 */
	List<AdditionalUserCardModel> findUsableUserCardList();

	/**
	 * 分页获取用户卡片信息列表
	 *
	 * @param model
	 * @return
	 * @author Kaiju Zhao
	 */
	PageDataList<AdditionalUserCardModel> list(AdditionalUserCardModel model);


	/**
	 * 用户卡片（兑换使用）
	 * @param userId
	 * @param cardIds
	 * @return
	 * @author linya
	 */
	int useUserCard(long userId, long[] cardIds);



}
